package com.promise.jokerdream.response.parser

import org.jsoup.Jsoup

/**
 * 竞技场页面XML解析器
 * 专门用于解析大乐斗竞技场相关的XML数据
 * 基于Jsoup实现
 */
class FightArenaXmlParser : BaseXmlParser<String>() {
    
    /**
     * @param xmlString XML字符串
     * @return 解析结果
     */
    fun extractContent(xmlString: String): XmlParseResult<String> {
        return parseXml(xmlString)
    }
    
    /**
     * 实现基类的具体解析逻辑
     * @param xmlString XML字符串
     * @return 内容
     */
    override fun doParse(xmlString: String): String {
        return try {
            // 统一替换<br />为<br/>，确保Jsoup能正确识别
            val normalizedXml = xmlString.replace(Regex("<br\\s*/?>"), "<br/>")
            val doc = Jsoup.parse(normalizedXml)
            val divElement = doc.selectFirst("div#id")
            
            if (divElement != null) {
                val pElement = divElement.selectFirst("p")
                if (pElement != null) {
                    // 使用select查找所有br标签
                    val textElements = pElement.textNodes()

                    if (textElements.size >= 2) {
                        // 获取第二个br标签的内容
                        val content = textElements[1].text()
                        return content
                            .replace(Regex("\\s+"), " ")
                            .trim()
                    }
                }
                "未知错误"
            } else {
                "未知错误"
            }
        } catch (e: Exception) {
            "未知错误"
        }
    }
}